#ifndef VIDEOSURFACE_H
#define VIDEOSURFACE_H


#include <QObject>
#include <QAbstractVideoSurface>

/*
    如果以此类实现视频播放函数cpu占用较高，以此捕捉视频帧，在捕获视频帧的时候保存
    方法：
        1. 使用viedoWidget播放视频
        2. 需要截屏的时候，暂停当前视频保存当前视频的位置，然后将输出流改为此类，获取当前帧后，重新改变输出流为viedoWidget
*/

class VideoSurface : public QAbstractVideoSurface
{
    Q_OBJECT
public:
    explicit VideoSurface(QObject *parent = 0);
    ~VideoSurface();

signals:
    void showImage(QVideoFrame frame);

protected:
    bool present(const QVideoFrame &frame);
    QList<QVideoFrame::PixelFormat> supportedPixelFormats(
            QAbstractVideoBuffer::HandleType handleType =
            QAbstractVideoBuffer::NoHandle) const;
};

#endif // VIDEOSURFACE_H
